package com.example.service.pc;

import com.example.common.result.Result;
import com.example.entity.dto.pc.*;
import com.example.entity.vo.pc.*;
import com.example.entity.yifei.Cmsmx;
import com.example.entity.yifei.Datelog;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface ScheduleService {

    // 按销售订单展阶
    MoctaDiGui COPTDStage(String TD001, String TD002, String TD003, String startTime, String endTime, String productNo);

    // 排程左侧列表  无分页
    List<PCListVo> scheduleListNoPage(ScheduleDto scheduleDto);

    //
    List<PCListVo> scheduleListExcelImport(ScheduleDto scheduleDto);

    // 排程左侧列表
    PageInfo<PCListVo> scheduleList(ScheduleDto scheduleDto);

    // 单号剩余排程数量Dto
    RemainderNumsVo remainderNums(RemainderNumsDto remainderNumsDto);

    // 查看用户信息（权限）
    UserInfoVo getUserInfo(UserInfoDto userInfoDto);

    // 查看物料状况
    List<MaterialStatusVo> materialStatus(MaterialStatusDto materialStatusDto);

    // 按日期更新工单排产计划
    Result updateSchedulePlanByDate(UpdateSchedulePlanDto updateSchedulePlanDto);

//    // 查看右边日期的值
//    List<ProductionScheduleStatusVo> getProductionScheduleStatus(ProductionScheduleStatusDto productionScheduleStatusDto);

    // 平衡量
    BalanceNumByProductIdVo getBalanceNumByProductId(BalanceNumByProductIdDto balanceNumByProductIdDto);

    List<Cmsmx> getMachinesByWorkCenter(MachinesByWorkCenterDto machinesByWorkCenterDto);

    List<ScheduleStatusVo> getScheduleStatus(ScheduleStatusDto scheduleStatusDto);

    Result setProductLine(SetProductLineDto setProductLineDto);

    List<GetProcessLineVo> getProcessLine(GetProcessLineDto getProcessLineDto);

    List<Datelog> getScheduleLog(ScheduleStatusDto scheduleStatusDto);

    /**
     * 查看工单-工序-工艺的排产详情
     * @param dto
     * @return
     */
    List<MachinesVo> selMachines(SelWorkResourceDto dto);

    List<MachinesVo> selMachinesMocta(SelWorkResourceDto dto);

    List<MachinesVo> selMachinesChaKanPaiChanStatus(SelWorkResourceDto dto);

    List<MaterialStatusVo> materialStatusTongShuai(MaterialStatusDto materialStatusDto);
}
